Scp
The peer connection to send the N-CREATE-REQ to.
Data
The data to send in the request.
TData
The type of the data to create the dataset from.
A DicomDataset will be created from the Data parameter. This dataset will then be sent in the N-CREATE-REQ. The Data class should be decorated with the correct attributes for creating the dataset.
Create a Modality Performed Procedure Step and sets it to complete.
using Leadtools.Dicom.Common.DataTypes.Modality;using Leadtools.Dicom;using Leadtools.Dicom.Scu.Queries;using Leadtools.Dicom.Scu;using Leadtools.Dicom.Common.Extensions;using Leadtools.Dicom.Scu.Common;List<ModalityWorklistResult> WorkLists = new List<ModalityWorklistResult>();public void PerformMPPS(){DicomEngine.Startup();DicomNet.Startup();ModalityWorklistQuery query = new ModalityWorklistQuery();DicomScp scp = new DicomScp();QueryRetrieveScu findMwl = new QueryRetrieveScu();scp.AETitle = "MWL_SERVER";scp.Port = 104;scp.Timeout = 60;scp.PeerAddress = IPAddress.Parse("192.168.0.209");findMwl.AETitle = "LEAD_CLIENT";findMwl.Find<ModalityWorklistQuery, ModalityWorklistResult>(scp, query, FoundWorklist);//// Create a Modality Perform Procedure Stepif (WorkLists.Count > 0){ModalityPerformedProcedureStep mpps = ModalityPerformedProcedureStep.From(WorkLists[0]);PerformedProcedureStepScu pps = new PerformedProcedureStepScu();pps.AETitle = "LEAD_CLIENT";pps.BeforeNCreate += new EventHandler<CommonEventArgs>(pps_BeforeNCreate);pps.AfterNCreate += new EventHandler<StatusCommonEventArgs>(pps_AfterNCreate);pps.BeforeNSet += new EventHandler<CommonEventArgs>(pps_BeforeNSet);pps.AfterNSet += new EventHandler<StatusCommonEventArgs>(pps_AfterNSet);//// Initialize required procedure step variables//mpps.PerformedStationAeTitle = Environment.MachineName;mpps.PerformedProcedureStepStartDate = DateTime.Now;mpps.PerformedProcedureStepStartTime = DateTime.Now;mpps.PerformedSeriesSequence[0].ProtocolName = ModalityPerformedProcedureStep.RandomId(16);mpps.PerformedSeriesSequence[0].SeriesInstanceUID = "1.2.3.4.5.890.1232";mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1";try{pps.Create<ModalityPerformedProcedureStep>(scp, mpps);//// Set the procedure step to done//mpps.PerformedProcedureStepEndDate = DateTime.Now;mpps.PerformedProcedureStepEndTime = DateTime.Now;mpps.PerformedProcedureStepStatus = "COMPLETED";pps.Set<ModalityPerformedProcedureStep>(scp, mpps);}catch (Exception e){Console.WriteLine(e.Message);}}DicomEngine.Shutdown();DicomNet.Startup();}private void FoundWorklist(ModalityWorklistResult result, DicomDataSet ds){WorkLists.Add(result);}void pps_BeforeNCreate(object sender, CommonEventArgs e){Console.WriteLine("Before N-CREATE-REQ");Console.WriteLine("\tAffected Class: " + e.AffectedClass);Console.WriteLine("\tInstance: " + e.Instance);Console.WriteLine("\tMessageId: " + e.MessageID.ToString());Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString());}void pps_AfterNCreate(object sender, StatusCommonEventArgs e){Console.WriteLine("After N-CREATE-REQ");Console.WriteLine("\tAffected Class: " + e.AffectedClass);Console.WriteLine("\tInstance: " + e.Instance);Console.WriteLine("\tMessageId: " + e.MessageID.ToString());Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString());Console.WriteLine("\tStatus: " + e.Status.ToString());}void pps_BeforeNSet(object sender, CommonEventArgs e){Console.WriteLine("Before N-SET-REQ");Console.WriteLine("\tAffected Class: " + e.AffectedClass);Console.WriteLine("\tInstance: " + e.Instance);Console.WriteLine("\tMessageId: " + e.MessageID.ToString());Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString());}void pps_AfterNSet(object sender, StatusCommonEventArgs e){Console.WriteLine("After N-CREATE-REQ");Console.WriteLine("\tAffected Class: " + e.AffectedClass);Console.WriteLine("\tInstance: " + e.Instance);Console.WriteLine("\tMessageId: " + e.MessageID.ToString());Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString());Console.WriteLine("\tStatus: " + e.Status.ToString());}
Imports Leadtools.Dicom.Common.DataTypes.ModalityImports Leadtools.DicomImports Leadtools.Dicom.Scu.QueriesImports Leadtools.Dicom.ScuImports Leadtools.Dicom.Scu.CommonImports Leadtools.Dicom.Common.ExtensionsPrivate WorkLists As New List(Of ModalityWorklistResult)()Public Sub PerformMPPS()DicomEngine.Startup()DicomNet.Startup()Dim query As New ModalityWorklistQuery()Dim scp As New DicomScp()Dim findMwl As New QueryRetrieveScu()scp.AETitle = "MWL_SERVER"scp.Port = 104scp.Timeout = 60scp.PeerAddress = IPAddress.Parse("192.168.0.209")findMwl.AETitle = "LEAD_CLIENT"findMwl.Find(Of ModalityWorklistQuery, ModalityWorklistResult)(scp, query, AddressOf FoundWorklist)'' Create a Modality Perform Procedure StepIf WorkLists.Count > 0 ThenDim mpps As ModalityPerformedProcedureStep = ModalityPerformedProcedureStep.From(WorkLists(0))Dim pps As New PerformedProcedureStepScu()pps.AETitle = "LEAD_CLIENT"AddHandler pps.BeforeNCreate, AddressOf pps_BeforeNCreateAddHandler pps.AfterNCreate, AddressOf pps_AfterNCreateAddHandler pps.BeforeNSet, AddressOf pps_BeforeNSetAddHandler pps.AfterNSet, AddressOf pps_AfterNSet'' Initialize required procedure step variables'mpps.PerformedStationAeTitle = Environment.MachineNamempps.PerformedProcedureStepStartDate = DateTime.Nowmpps.PerformedProcedureStepStartTime = DateTime.Nowmpps.PerformedSeriesSequence(0).ProtocolName = ModalityPerformedProcedureStep.RandomId(16)mpps.PerformedSeriesSequence(0).SeriesInstanceUID = "1.2.3.4.5.890.1232"mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1"Trypps.Create(Of ModalityPerformedProcedureStep)(scp, mpps)'' Set the procedure step to done'mpps.PerformedProcedureStepEndDate = DateTime.Nowmpps.PerformedProcedureStepEndTime = DateTime.Nowmpps.PerformedProcedureStepStatus = "COMPLETED"pps.[Set](Of ModalityPerformedProcedureStep)(scp, mpps)Catch e As ExceptionConsole.WriteLine(e.Message)End TryEnd IfDicomEngine.Shutdown()DicomNet.Startup()End SubPrivate Sub FoundWorklist(ByVal result As ModalityWorklistResult, ByVal ds As DicomDataSet)WorkLists.Add(result)End SubPrivate Sub pps_BeforeNCreate(ByVal sender As Object, ByVal e As CommonEventArgs)Console.WriteLine("Before N-CREATE-REQ")Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass)Console.WriteLine(vbTab & "Instance: " & e.Instance)Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString())Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString())End SubPrivate Sub pps_AfterNCreate(ByVal sender As Object, ByVal e As StatusCommonEventArgs)Console.WriteLine("After N-CREATE-REQ")Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass)Console.WriteLine(vbTab & "Instance: " & e.Instance)Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString())Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString())Console.WriteLine(vbTab & "Status: " & e.Status.ToString())End SubPrivate Sub pps_BeforeNSet(ByVal sender As Object, ByVal e As CommonEventArgs)Console.WriteLine("Before N-SET-REQ")Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass)Console.WriteLine(vbTab & "Instance: " & e.Instance)Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString())Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString())End SubPrivate Sub pps_AfterNSet(ByVal sender As Object, ByVal e As StatusCommonEventArgs)Console.WriteLine("After N-CREATE-REQ")Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass)Console.WriteLine(vbTab & "Instance: " & e.Instance)Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString())Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString())Console.WriteLine(vbTab & "Status: " & e.Status.ToString())End Sub
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
